#pragma once
#ifndef H_Object
#define H_Object

#include <iostream>
#include <string>
#include "Vector3.h"
#include "Color.h"
#include "Material.h"

class Ray;

using namespace std;

class Object {
	public:
		Object();
		
		virtual Vector3 normal(Vector3 p);
		virtual Vector3 normal();
		virtual float tIntersect(Vector3 p, Vector3 r, Object* obj);
		virtual Object* tIntersect(const Ray& ray, float& distance);

		bool isBoundingVolume();
		virtual Color getExtraColor(Vector3 p);
		
		string  name;
		Color color;
		Material material;
		float t1, t2;
		bool positiveDiscriminant;
		Vector3 center;
		bool issphere;

protected:
	Vector3 n;
	bool boundingVolume;
};
#endif